package com.yuanheng100.asset.consts.repay;

import java.math.BigDecimal;
import java.util.Date;

/**
 * 一个单独的还款分期
 * 
 * @author Bai Song
 *
 */
public class RepayInstallment
{
    /**
     * 还款分期id
     */
    private Long repayInstallmentId;
    
    /**
     * 期数
     */
    private Short installmentCount;
    
    /**
     * 还款状态
     */
    private Short repayStatus;
    
    
    //---------应还---------
    
    /**
     * 到期时间（包括日期），即planRepayTime
     */
    private Date dueTime;
      
    /**
     * 到期应还本金
     */
    private BigDecimal duePrincipal;
    
    /**
     * 到期应还利息
     */
    private BigDecimal dueInterest;
    
    /**
     * 到期应还罚息（给投资人）
     */
    private BigDecimal duePunishInterest;
    
    /**
     * 到期应还违约金（给平台）
     */
    private BigDecimal duePenalty;
    
    
    //---------实还---------
    
    /**
     *实际还款时间
     */
    private Date actualRepayTime;
    
    /**
     *实还本金
     */
    private BigDecimal actualRepayPrincipal;

    /**
     *实还利息
     */
    private BigDecimal actualRepayInterest;

    /**
     *实还罚息
     */
    private BigDecimal actualRepayPunishInterest;

    /**
     *实还违约金
     */
    private BigDecimal actualRepayPenalty;
    
    /**
     *减免金额
     */
    private BigDecimal reduceAmount;
    
    
    

    /**
     * @return the repayInstallmentId
     */
    public Long getRepayInstallmentId()
    {
        return repayInstallmentId;
    }

    /**
     * @param repayInstallmentId the repayInstallmentId to set
     */
    public void setRepayInstallmentId(Long repayInstallmentId)
    {
        this.repayInstallmentId = repayInstallmentId;
    }

    /**
     * @return the installmentCount
     */
    public Short getInstallmentCount()
    {
        return installmentCount;
    }

    /**
     * @param installmentCount the installmentCount to set
     */
    public void setInstallmentCount(Short installmentCount)
    {
        this.installmentCount = installmentCount;
    }

    /**
     * @return the repayStatus
     */
    public Short getRepayStatus()
    {
        return repayStatus;
    }

    /**
     * @param repayStatus the repayStatus to set
     */
    public void setRepayStatus(Short repayStatus)
    {
        this.repayStatus = repayStatus;
    }

    /**
     * @return the dueTime
     */
    public Date getDueTime()
    {
        return dueTime;
    }

    /**
     * @param dueTime the dueTime to set
     */
    public void setDueTime(Date dueTime)
    {
        this.dueTime = dueTime;
    }

    /**
     * @return the duePrincipal
     */
    public BigDecimal getDuePrincipal()
    {
        return duePrincipal;
    }

    /**
     * @param duePrincipal the duePrincipal to set
     */
    public void setDuePrincipal(BigDecimal duePrincipal)
    {
        this.duePrincipal = duePrincipal;
    }

    /**
     * @return the dueInterest
     */
    public BigDecimal getDueInterest()
    {
        return dueInterest;
    }

    /**
     * @param dueInterest the dueInterest to set
     */
    public void setDueInterest(BigDecimal dueInterest)
    {
        this.dueInterest = dueInterest;
    }

    /**
     * @return the duePunishInterest
     */
    public BigDecimal getDuePunishInterest()
    {
        return duePunishInterest;
    }

    /**
     * @param duePunishInterest the duePunishInterest to set
     */
    public void setDuePunishInterest(BigDecimal duePunishInterest)
    {
        this.duePunishInterest = duePunishInterest;
    }

    /**
     * @return the duePenalty
     */
    public BigDecimal getDuePenalty()
    {
        return duePenalty;
    }

    /**
     * @param duePenalty the duePenalty to set
     */
    public void setDuePenalty(BigDecimal duePenalty)
    {
        this.duePenalty = duePenalty;
    }

    /**
     * @return the actualRepayTime
     */
    public Date getActualRepayTime()
    {
        return actualRepayTime;
    }

    /**
     * @param actualRepayTime the actualRepayTime to set
     */
    public void setActualRepayTime(Date actualRepayTime)
    {
        this.actualRepayTime = actualRepayTime;
    }

    /**
     * @return the actualRepayPrincipal
     */
    public BigDecimal getActualRepayPrincipal()
    {
        return actualRepayPrincipal;
    }

    /**
     * @param actualRepayPrincipal the actualRepayPrincipal to set
     */
    public void setActualRepayPrincipal(BigDecimal actualRepayPrincipal)
    {
        this.actualRepayPrincipal = actualRepayPrincipal;
    }

    /**
     * @return the actualRepayInterest
     */
    public BigDecimal getActualRepayInterest()
    {
        return actualRepayInterest;
    }

    /**
     * @param actualRepayInterest the actualRepayInterest to set
     */
    public void setActualRepayInterest(BigDecimal actualRepayInterest)
    {
        this.actualRepayInterest = actualRepayInterest;
    }

    /**
     * @return the actualRepayPunishInterest
     */
    public BigDecimal getActualRepayPunishInterest()
    {
        return actualRepayPunishInterest;
    }

    /**
     * @param actualRepayPunishInterest the actualRepayPunishInterest to set
     */
    public void setActualRepayPunishInterest(BigDecimal actualRepayPunishInterest)
    {
        this.actualRepayPunishInterest = actualRepayPunishInterest;
    }

    /**
     * @return the actualRepayPenalty
     */
    public BigDecimal getActualRepayPenalty()
    {
        return actualRepayPenalty;
    }

    /**
     * @param actualRepayPenalty the actualRepayPenalty to set
     */
    public void setActualRepayPenalty(BigDecimal actualRepayPenalty)
    {
        this.actualRepayPenalty = actualRepayPenalty;
    }

    /**
     * @return the reduceAmount
     */
    public BigDecimal getReduceAmount()
    {
        return reduceAmount;
    }

    /**
     * @param reduceAmount the reduceAmount to set
     */
    public void setReduceAmount(BigDecimal reduceAmount)
    {
        this.reduceAmount = reduceAmount;
    }
    
}
